package com.qianfeng.springcoud.item.controller;


//
//                            _ooOoo_  
//                           o8888888o  
//                           88" . "88  
//                           (| -_- |)  
//                            O\ = /O  
//                        ____/`---'\____  
//                      .   ' \\| |// `.  
//                       / \\||| : |||// \  
//                     / _||||| -:- |||||- \  
//                       | | \\\ - /// | |  
//                     | \_| ''\---/'' | |  
//                      \ .-\__ `-` ___/-. /  
//                   ___`. .' /--.--\ `. . __  
//                ."" '< `.___\_<|>_/___.' >'"".  
//               | | : `- \`.;`\ _ /`;.`/ - ` : | |  
//                 \ \ `-. \_ __\ /__ _/ .-` / /  
//         ======`-.____`-.___\_____/___.-`____.-'======  
//                            `=---='  
//  
//         .............................................  
//                  佛祖镇楼            BUG辟易  
//          佛曰:  
//                  写字楼里写字间，写字间里程序员；  
//                  程序人员写程序，又拿程序换酒钱。  
//                  酒醒只在网上坐，酒醉还来网下眠；  
//                  酒醉酒醒日复日，网上网下年复年。  
//                  但愿老死电脑间，不愿鞠躬老板前；  
//                  奔驰宝马贵者趣，公交自行程序员。  
//                  别人笑我忒疯癫，我笑自己命太贱；  


import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
import com.qianfeng.springcoud.item.pojo.Item;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import java.util.Random;

/**
 * Created by jackiechan on 2021/11/3 11:12
 *
 * @author jackiechan
 * @version 1.0
 * //TODO 给最美丽的芳姐介绍学生
 * @since 1.0
 */

@RestController
@RequestMapping("/items")
public class ItemController {

    private int count;
    @GetMapping("/item/{id}")
    @HystrixCommand(fallbackMethod = "suibianxieyigemingzi")//当当前方法出现异常的时候会执行我们指定的方法
    public Item getItemById(@PathVariable Integer id, HttpServletRequest request) {
        System.err.println(request.getRemoteAddr());
        count++;
        System.err.println(count);
        Item item = new Item();
        item.setId(id);
        item.setCategory("计生用品");
        item.setName("打气筒");
        item.setPrice(10000);
        if (new Random().nextBoolean()) {
            int i = 1 / 0;
        }
        return item;
    }
    @GetMapping("/item/test1")
    public String getItemById(String username,@RequestParam(defaultValue = "100") int age) {
        return "收到的参数是 name:===>" + username + "--age111111111111:--->" + age;
    }

    @PostMapping("/item/item")
    public Item getItemById(@RequestBody  Item item) {
        item.setName(item.getName()+"xiugaihoude");
        return item;
    }

    /**
     * 这个就是降级方法
     * @param id
     * @param request
     * @return
     */
    public Item suibianxieyigemingzi(Integer id, HttpServletRequest request) {
        System.err.println("降级的方法执行了");
        System.err.println(count);
        Item item = new Item();
        item.setId(id+1000);
        item.setCategory("降级的分类");
        item.setName("降级的商品的名字");
        item.setPrice(-10000);
        return item;
    }
}
